home *** CD-ROM | disk | FTP | other *** search
- package java.lang;
-
- import java.util.Arrays;
- import sun.misc.FloatingDecimal;
-
- abstract class AbstractStringBuilder implements Appendable, CharSequence {
- char[] value;
- int count;
- static final int[] sizeTable = new int[]{9, 99, 999, 9999, 99999, 999999, 9999999, 99999999, 999999999, Integer.MAX_VALUE};
-
- AbstractStringBuilder() {
- }
-
- AbstractStringBuilder(int var1) {
- this.value = new char[var1];
- }
-
- public int length() {
- return this.count;
- }
-
- public int capacity() {
- return this.value.length;
- }
-
- public void ensureCapacity(int var1) {
- if (var1 > this.value.length) {
- this.expandCapacity(var1);
- }
-
- }
-
- void expandCapacity(int var1) {
- int var2 = (this.value.length + 1) * 2;
- if (var2 < 0) {
- var2 = Integer.MAX_VALUE;
- } else if (var1 > var2) {
- var2 = var1;
- }
-
- this.value = Arrays.copyOf(this.value, var2);
- }
-
- public void trimToSize() {
- if (this.count < this.value.length) {
- this.value = Arrays.copyOf(this.value, this.count);
- }
-
- }
-
- public void setLength(int var1) {
- if (var1 < 0) {
- throw new StringIndexOutOfBoundsException(var1);
- } else {
- if (var1 > this.value.length) {
- this.expandCapacity(var1);
- }
-
- if (this.count < var1) {
- while(this.count < var1) {
- this.value[this.count] = 0;
- ++this.count;
- }
- } else {
- this.count = var1;
- }
-
- }
- }
-
- public char charAt(int var1) {
- if (var1 >= 0 && var1 < this.count) {
- return this.value[var1];
- } else {
- throw new StringIndexOutOfBoundsException(var1);
- }
- }
-
- public int codePointAt(int var1) {
- if (var1 >= 0 && var1 < this.count) {
- return Character.codePointAt(this.value, var1);
- } else {
- throw new StringIndexOutOfBoundsException(var1);
- }
- }
-
- public int codePointBefore(int var1) {
- int var2 = var1 - 1;
- if (var2 >= 0 && var2 < this.count) {
- return Character.codePointBefore(this.value, var1);
- } else {
- throw new StringIndexOutOfBoundsException(var1);
- }
- }
-
- public int codePointCount(int var1, int var2) {
- if (var1 >= 0 && var2 <= this.count && var1 <= var2) {
- return Character.codePointCountImpl(this.value, var1, var2 - var1);
- } else {
- throw new IndexOutOfBoundsException();
- }
- }
-
- public int offsetByCodePoints(int var1, int var2) {
- if (var1 >= 0 && var1 <= this.count) {
- return Character.offsetByCodePointsImpl(this.value, 0, this.count, var1, var2);
- } else {
- throw new IndexOutOfBoundsException();
- }
- }
-
- public void getChars(int var1, int var2, char[] var3, int var4) {
- if (var1 < 0) {
- throw new StringIndexOutOfBoundsException(var1);
- } else if (var2 >= 0 && var2 <= this.count) {
- if (var1 > var2) {
- throw new StringIndexOutOfBoundsException("srcBegin > srcEnd");
- } else {
- System.arraycopy(this.value, var1, var3, var4, var2 - var1);
- }
- } else {
- throw new StringIndexOutOfBoundsException(var2);
- }
- }
-
- public void setCharAt(int var1, char var2) {
- if (var1 >= 0 && var1 < this.count) {
- this.value[var1] = var2;
- } else {
- throw new StringIndexOutOfBoundsException(var1);
- }
- }
-
- public AbstractStringBuilder append(Object var1) {
- return this.append(String.valueOf(var1));
- }
-
- public AbstractStringBuilder append(String var1) {
- if (var1 == null) {
- var1 = "null";
- }
-
- int var2 = var1.length();
- if (var2 == 0) {
- return this;
- } else {
- int var3 = this.count + var2;
- if (var3 > this.value.length) {
- this.expandCapacity(var3);
- }
-
- var1.getChars(0, var2, this.value, this.count);
- this.count = var3;
- return this;
- }
- }
-
- public AbstractStringBuilder append(StringBuffer var1) {
- if (var1 == null) {
- return this.append("null");
- } else {
- int var2 = var1.length();
- int var3 = this.count + var2;
- if (var3 > this.value.length) {
- this.expandCapacity(var3);
- }
-
- var1.getChars(0, var2, this.value, this.count);
- this.count = var3;
- return this;
- }
- }
-
- public AbstractStringBuilder append(CharSequence var1) {
- if (var1 == null) {
- var1 = "null";
- }
-
- if (var1 instanceof String) {
- return this.append((String)var1);
- } else {
- return var1 instanceof StringBuffer ? this.append((StringBuffer)var1) : this.append((CharSequence)var1, 0, ((CharSequence)var1).length());
- }
- }
-
- public AbstractStringBuilder append(CharSequence var1, int var2, int var3) {
- if (var1 == null) {
- var1 = "null";
- }
-
- if (var2 >= 0 && var3 >= 0 && var2 <= var3 && var3 <= ((CharSequence)var1).length()) {
- int var4 = var3 - var2;
- if (var4 == 0) {
- return this;
- } else {
- int var5 = this.count + var4;
- if (var5 > this.value.length) {
- this.expandCapacity(var5);
- }
-
- for(int var6 = var2; var6 < var3; ++var6) {
- this.value[this.count++] = ((CharSequence)var1).charAt(var6);
- }
-
- this.count = var5;
- return this;
- }
- } else {
- throw new IndexOutOfBoundsException("start " + var2 + ", end " + var3 + ", s.length() " + ((CharSequence)var1).length());
- }
- }
-
- public AbstractStringBuilder append(char[] var1) {
- int var2 = this.count + var1.length;
- if (var2 > this.value.length) {
- this.expandCapacity(var2);
- }
-
- System.arraycopy(var1, 0, this.value, this.count, var1.length);
- this.count = var2;
- return this;
- }
-
- public AbstractStringBuilder append(char[] var1, int var2, int var3) {
- int var4 = this.count + var3;
- if (var4 > this.value.length) {
- this.expandCapacity(var4);
- }
-
- System.arraycopy(var1, var2, this.value, this.count, var3);
- this.count = var4;
- return this;
- }
-
- public AbstractStringBuilder append(boolean var1) {
- if (var1) {
- int var2 = this.count + 4;
- if (var2 > this.value.length) {
- this.expandCapacity(var2);
- }
-
- this.value[this.count++] = 't';
- this.value[this.count++] = 'r';
- this.value[this.count++] = 'u';
- this.value[this.count++] = 'e';
- } else {
- int var3 = this.count + 5;
- if (var3 > this.value.length) {
- this.expandCapacity(var3);
- }
-
- this.value[this.count++] = 'f';
- this.value[this.count++] = 'a';
- this.value[this.count++] = 'l';
- this.value[this.count++] = 's';
- this.value[this.count++] = 'e';
- }
-
- return this;
- }
-
- public AbstractStringBuilder append(char var1) {
- int var2 = this.count + 1;
- if (var2 > this.value.length) {
- this.expandCapacity(var2);
- }
-
- this.value[this.count++] = var1;
- return this;
- }
-
- public AbstractStringBuilder append(int var1) {
- if (var1 == Integer.MIN_VALUE) {
- this.append("-2147483648");
- return this;
- } else {
- int var2 = var1 < 0 ? stringSizeOfInt(-var1) + 1 : stringSizeOfInt(var1);
- int var3 = this.count + var2;
- if (var3 > this.value.length) {
- this.expandCapacity(var3);
- }
-
- Integer.getChars(var1, var3, this.value);
- this.count = var3;
- return this;
- }
- }
-
- static int stringSizeOfInt(int var0) {
- int var1;
- for(var1 = 0; var0 > sizeTable[var1]; ++var1) {
- }
-
- return var1 + 1;
- }
-
- public AbstractStringBuilder append(long var1) {
- if (var1 == Long.MIN_VALUE) {
- this.append("-9223372036854775808");
- return this;
- } else {
- int var3 = var1 < 0L ? stringSizeOfLong(-var1) + 1 : stringSizeOfLong(var1);
- int var4 = this.count + var3;
- if (var4 > this.value.length) {
- this.expandCapacity(var4);
- }
-
- Long.getChars(var1, var4, this.value);
- this.count = var4;
- return this;
- }
- }
-
- static int stringSizeOfLong(long var0) {
- long var2 = 10L;
-
- for(int var4 = 1; var4 < 19; ++var4) {
- if (var0 < var2) {
- return var4;
- }
-
- var2 = 10L * var2;
- }
-
- return 19;
- }
-
- public AbstractStringBuilder append(float var1) {
- (new FloatingDecimal(var1)).appendTo(this);
- return this;
- }
-
- public AbstractStringBuilder append(double var1) {
- (new FloatingDecimal(var1)).appendTo(this);
- return this;
- }
-
- public AbstractStringBuilder delete(int var1, int var2) {
- if (var1 < 0) {
- throw new StringIndexOutOfBoundsException(var1);
- } else {
- if (var2 > this.count) {
- var2 = this.count;
- }
-
- if (var1 > var2) {
- throw new StringIndexOutOfBoundsException();
- } else {
- int var3 = var2 - var1;
- if (var3 > 0) {
- System.arraycopy(this.value, var1 + var3, this.value, var1, this.count - var2);
- this.count -= var3;
- }
-
- return this;
- }
- }
- }
-
- public AbstractStringBuilder appendCodePoint(int var1) {
- if (!Character.isValidCodePoint(var1)) {
- throw new IllegalArgumentException();
- } else {
- int var2 = 1;
- if (var1 >= 65536) {
- ++var2;
- }
-
- int var3 = this.count + var2;
- if (var3 > this.value.length) {
- this.expandCapacity(var3);
- }
-
- if (var2 == 1) {
- this.value[this.count++] = (char)var1;
- } else {
- Character.toSurrogates(var1, this.value, this.count);
- this.count += var2;
- }
-
- return this;
- }
- }
-
- public AbstractStringBuilder deleteCharAt(int var1) {
- if (var1 >= 0 && var1 < this.count) {
- System.arraycopy(this.value, var1 + 1, this.value, var1, this.count - var1 - 1);
- --this.count;
- return this;
- } else {
- throw new StringIndexOutOfBoundsException(var1);
- }
- }
-
- public AbstractStringBuilder replace(int var1, int var2, String var3) {
- if (var1 < 0) {
- throw new StringIndexOutOfBoundsException(var1);
- } else if (var1 > this.count) {
- throw new StringIndexOutOfBoundsException("start > length()");
- } else if (var1 > var2) {
- throw new StringIndexOutOfBoundsException("start > end");
- } else {
- if (var2 > this.count) {
- var2 = this.count;
- }
-
- int var4 = var3.length();
- int var5 = this.count + var4 - (var2 - var1);
- if (var5 > this.value.length) {
- this.expandCapacity(var5);
- }
-
- System.arraycopy(this.value, var2, this.value, var1 + var4, this.count - var2);
- var3.getChars(this.value, var1);
- this.count = var5;
- return this;
- }
- }
-
- public String substring(int var1) {
- return this.substring(var1, this.count);
- }
-
- public CharSequence subSequence(int var1, int var2) {
- return this.substring(var1, var2);
- }
-
- public String substring(int var1, int var2) {
- if (var1 < 0) {
- throw new StringIndexOutOfBoundsException(var1);
- } else if (var2 > this.count) {
- throw new StringIndexOutOfBoundsException(var2);
- } else if (var1 > var2) {
- throw new StringIndexOutOfBoundsException(var2 - var1);
- } else {
- return new String(this.value, var1, var2 - var1);
- }
- }
-
- public AbstractStringBuilder insert(int var1, char[] var2, int var3, int var4) {
- if (var1 >= 0 && var1 <= this.length()) {
- if (var3 >= 0 && var4 >= 0 && var3 <= var2.length - var4) {
- int var5 = this.count + var4;
- if (var5 > this.value.length) {
- this.expandCapacity(var5);
- }
-
- System.arraycopy(this.value, var1, this.value, var1 + var4, this.count - var1);
- System.arraycopy(var2, var3, this.value, var1, var4);
- this.count = var5;
- return this;
- } else {
- throw new StringIndexOutOfBoundsException("offset " + var3 + ", len " + var4 + ", str.length " + var2.length);
- }
- } else {
- throw new StringIndexOutOfBoundsException(var1);
- }
- }
-
- public AbstractStringBuilder insert(int var1, Object var2) {
- return this.insert(var1, String.valueOf(var2));
- }
-
- public AbstractStringBuilder insert(int var1, String var2) {
- if (var1 >= 0 && var1 <= this.length()) {
- if (var2 == null) {
- var2 = "null";
- }
-
- int var3 = var2.length();
- int var4 = this.count + var3;
- if (var4 > this.value.length) {
- this.expandCapacity(var4);
- }
-
- System.arraycopy(this.value, var1, this.value, var1 + var3, this.count - var1);
- var2.getChars(this.value, var1);
- this.count = var4;
- return this;
- } else {
- throw new StringIndexOutOfBoundsException(var1);
- }
- }
-
- public AbstractStringBuilder insert(int var1, char[] var2) {
- if (var1 >= 0 && var1 <= this.length()) {
- int var3 = var2.length;
- int var4 = this.count + var3;
- if (var4 > this.value.length) {
- this.expandCapacity(var4);
- }
-
- System.arraycopy(this.value, var1, this.value, var1 + var3, this.count - var1);
- System.arraycopy(var2, 0, this.value, var1, var3);
- this.count = var4;
- return this;
- } else {
- throw new StringIndexOutOfBoundsException(var1);
- }
- }
-
- public AbstractStringBuilder insert(int var1, CharSequence var2) {
- if (var2 == null) {
- var2 = "null";
- }
-
- return var2 instanceof String ? this.insert(var1, (String)var2) : this.insert(var1, (CharSequence)var2, 0, ((CharSequence)var2).length());
- }
-
- public AbstractStringBuilder insert(int var1, CharSequence var2, int var3, int var4) {
- if (var2 == null) {
- var2 = "null";
- }
-
- if (var1 >= 0 && var1 <= this.length()) {
- if (var3 >= 0 && var4 >= 0 && var3 <= var4 && var4 <= ((CharSequence)var2).length()) {
- int var5 = var4 - var3;
- if (var5 == 0) {
- return this;
- } else {
- int var6 = this.count + var5;
- if (var6 > this.value.length) {
- this.expandCapacity(var6);
- }
-
- System.arraycopy(this.value, var1, this.value, var1 + var5, this.count - var1);
-
- for(int var7 = var3; var7 < var4; ++var7) {
- this.value[var1++] = ((CharSequence)var2).charAt(var7);
- }
-
- this.count = var6;
- return this;
- }
- } else {
- throw new IndexOutOfBoundsException("start " + var3 + ", end " + var4 + ", s.length() " + ((CharSequence)var2).length());
- }
- } else {
- throw new IndexOutOfBoundsException("dstOffset " + var1);
- }
- }
-
- public AbstractStringBuilder insert(int var1, boolean var2) {
- return this.insert(var1, String.valueOf(var2));
- }
-
- public AbstractStringBuilder insert(int var1, char var2) {
- int var3 = this.count + 1;
- if (var3 > this.value.length) {
- this.expandCapacity(var3);
- }
-
- System.arraycopy(this.value, var1, this.value, var1 + 1, this.count - var1);
- this.value[var1] = var2;
- this.count = var3;
- return this;
- }
-
- public AbstractStringBuilder insert(int var1, int var2) {
- return this.insert(var1, String.valueOf(var2));
- }
-
- public AbstractStringBuilder insert(int var1, long var2) {
- return this.insert(var1, String.valueOf(var2));
- }
-
- public AbstractStringBuilder insert(int var1, float var2) {
- return this.insert(var1, String.valueOf(var2));
- }
-
- public AbstractStringBuilder insert(int var1, double var2) {
- return this.insert(var1, String.valueOf(var2));
- }
-
- public int indexOf(String var1) {
- return this.indexOf(var1, 0);
- }
-
- public int indexOf(String var1, int var2) {
- return String.indexOf(this.value, 0, this.count, var1.toCharArray(), 0, var1.length(), var2);
- }
-
- public int lastIndexOf(String var1) {
- return this.lastIndexOf(var1, this.count);
- }
-
- public int lastIndexOf(String var1, int var2) {
- return String.lastIndexOf(this.value, 0, this.count, var1.toCharArray(), 0, var1.length(), var2);
- }
-
- public AbstractStringBuilder reverse() {
- boolean var1 = false;
- int var2 = this.count - 1;
-
- for(int var3 = var2 - 1 >> 1; var3 >= 0; --var3) {
- char var4 = this.value[var3];
- char var5 = this.value[var2 - var3];
- if (!var1) {
- var1 = var4 >= '\ud800' && var4 <= '\udfff' || var5 >= '\ud800' && var5 <= '\udfff';
- }
-
- this.value[var3] = var5;
- this.value[var2 - var3] = var4;
- }
-
- if (var1) {
- for(int var6 = 0; var6 < this.count - 1; ++var6) {
- char var7 = this.value[var6];
- if (Character.isLowSurrogate(var7)) {
- char var8 = this.value[var6 + 1];
- if (Character.isHighSurrogate(var8)) {
- this.value[var6++] = var8;
- this.value[var6] = var7;
- }
- }
- }
- }
-
- return this;
- }
-
- public abstract String toString();
-
- final char[] getValue() {
- return this.value;
- }
- }
-